The disclosure generally relates to the field of computer systems, and more particularly to debugging of a software program.
Breakpoints are used during debugging to halt execution of a program and allow a programmer to examine the state of the program at the location of the breakpoint. Breakpoints may be assigned to a particular line of code, function, or variable. There are multiple types of breakpoints that provide different functionality. For example, a traditional breakpoint halts execution of a program each time the assigned location is reached. A conditional breakpoint is also assigned to a location but halts the program at that location if a specified condition for the location is satisfied. A watchpoint is a type of breakpoint that is assigned to a specific variable. A watchpoint halts execution of a program each time the value of the assigned variable changes. Some debuggers include other types of breakpoints such as a symbolic breakpoint or a data breakpoint. To use each of the breakpoint types, a programmer has some level of familiarity with a program. For example, a programmer knows the location of a problematic function within a program's code to assign a breakpoint to the function or knows the name and location of a problematic variable in order to assign a watchpoint to the variable.